package top.moyel.hmi4k.exp

import top.moyel.hmi4k.entity.HmiResult

interface IHmiExp {
    /**
     * 是否支持使用此表达式
     */
    fun support(expression: String): Boolean

    /**
     * 表达式优先级
     */
    fun order(): Int = 0

    /**
     * 获取当前表达式需要的值
     */
    fun getVariableNames(exp: String): List<String>

    /**
     * 表达式计算
     */
    fun exec(exp: String, params: Map<String, Any?>): Pair<String, HmiResult>
}